<?php
try {
    $obj = new WxworkFinanceSdk("xxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxx");
    // 私钥，必须注意对应的公钥的版本，我这里设置了两个
    // 还有文本格式是Unix，在Windows编辑器下需要特别注意
    $privateKey5 = '-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END RSA PRIVATE KEY-----';

    $privateKey6 = '-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END RSA PRIVATE KEY-----';

    $chats = json_decode($obj->getChatData(0, 10), true);
    foreach ($chats['chatdata'] as $val) {
        echo '公钥版本号：'.$val['publickey_ver'];
        // @param1为需要解密的数据（base64）,@param2为解密后的数据，@param3为私钥
        // @param4为对应的密钥格式（PKCS1开头：begin rsa private key，PKCS8开头：begin private key），都可以，只要@param4选择了正确的私钥读取参数
        openssl_private_decrypt(base64_decode($val['encrypt_random_key']), $decryptRandKey, $privateKey6, OPENSSL_PKCS1_PADDING);
        var_dump($decryptRandKey);
        echo "<hr/>";
        $msg = $obj->decryptData($decryptRandKey, $val['encrypt_chat_msg']);
        echo $msg;
        //$obj->downloadMedia($sdkFileId, "/media.mp4");
    }

}catch(\WxworkFinanceSdkException $e) {
    var_dump($e->getMessage(), $e->getCode());
}
/**
 * openssl_pkey_get_private这个函数可用来判断私钥是否是可用的，可用，返回资源
 * @return bool
 */
function getPrivateKey($privateKey)
{
    return openssl_pkey_get_private($privateKey);
}
/**
 * openssl_pkey_get_public这个函数可用来判断公钥是否是可用的，可用，返回资源
 * @return bool
 */
function getPublicKey($publicKey)
{
    return openssl_pkey_get_public($publicKey);
}
